User blog:Syst3ms/Chained Array Notation (Revised)
Thanks to Nish/Alemagno12 for some of the suggestions, especially for dimensional and above ^.^ Okay, this is my second attempt at Chained Array Notation, and this one should be much better. So we're starting at LCAN, i.e these rules : 1) \(a0 = a^a\) 2) \(a\#,0 = a\#\) 3) \(ab+1,\# = a\underbrace{b,\#\cdotsb,\#}_{a}\) 4) \(a0,\ldots,0,c+1,\# = aa,\ldots,a,c,\#\) This reaches \(\omega^\omega\). But then we're going to make changes regarding NCAN (Nested CAN) : Stage 3 : Nested (NCAN) : First off, let's change rule 4 : 4) \(a[0,\ldots,0,[\cdotsc+1\cdots],\#] = a[0,\ldots,0,\ldots,0,0,\#,[\cdotsc\cdots],\#]\) This acts like HAN, and this makes it much, MUCH more powerful. But we first need to add our process : If none of the rules apply, begin this process, starting at the first entry : #If the entry is a 0, jump to the next one #Otherwise (the entry has to be a nested array) : ##If the entry is \(0\), replace it with the base. ##If the entry is of the form \(b+1,\#\), then decrease b by 1, and duplicate the main array \(a\) times, where \(a\) is the base. ##If the entry is of the form \(0,\ldots,0,b+1,\#\), then replace it with \([0,\ldots,0,\ldots,0,0,\#,b,\#]\) ##Otherwise, start this process inside of the entry. Now what's the difference with my first attempt at this notation ? Well, take a look at the expansion of \(20,1,1\), first with the original definition, and then with the revised one : \(\begin{align*} 20,1,1 &= 22,0,1 \\ &= 20,0,10,0,11,0,1 \\ &= 22,20,0,11,0,1 \\ &= \ldots \end{align*}\) \(\begin{align*} 20,1,1 &= 2[0,0,1,0,1] \\ &= 2[[0,0,0,0,0],0,1] \\ &= 2[0,2,0,1] \\ &= 2[2,1,0,1] \\ &= 2[0,1,0,1][0,1,0,1][1,1,0,1] \\ &= 2[2,0,1][0,1,0,1][1,1,0,1] \\ &= 2[0,0,1][0,0,1][1,0,1][0,1,0,1][1,1,0,1] \\ &= 22,0,1[0,0,1][1,0,1][0,1,0,1][1,1,0,1] \\ &= \ldots \end{align*}\) So yeah, as you can see, this makes NCAN much more powerful. But how much more powerful ? Well, previously, NCAN reached somewhere around \(\varepsilon_0\). Now, it reaches all the way up to \(\varphi(\omega,0)\). Not only that, but the limit of NCAN is no longer \(n[[\cdots0\cdots]]\), but rather \(n0,\ldots,0,1\). Stage 4 : Dimensional (DCAN) : Now we're taking a 180° turn from what I had previously done, and we're jumping straight to dimensional. Tthe comma is a shorthand for \(\{0\}\). The next separator, as obvious as it seems, is \(\{1\}\). How does this expand, you might ask ? To answer that, we just need to add change rule 2 to "If the entry is an array" and add another rule after that. 3) Otherwise (the entry is a number preceded by a dimensional separator and a zero entry), replace \(0 \{A+1\} b+1 \ldots\) by \(\underbrace{0\{A\}0\ldots0\{A\}0}_a \{A\} 1 \{A+1\} b\ldots\) Now, \(0\{1\}1\) is the supremum of linear arrays, giving it a strength of \(\varphi(\omega,0)\). The limit of this is \(n0\{n\}1\), which has a mere strength of \(\varphi(\omega^\omega,0)\). Stage 5 : Hyperdimensional (HDCAN) : Here we're going to allow the full strength of dimensional arrays inside separators, with some extra rules. Let's change rule 3 of the process to this : 3) Otherwise, the entry is preceded by a dimensional separator and a zero : First, look outwards for the innermost set of [] brackets, and call it the "current array". #If the separator is of the form \(\{A+1,\#\}\), change the current array from \(\ldots0\{A+1,\#\}b+1\ldots\) to \(\ldots\underbrace{0\{A,\#\}0\{A,\#\}\ldots}_a\{A,\#\}1\{A+1,\#\}b\ldots\) where \(a\) is the base. #If the separator is of the form \(\{0,\ldots,0,A+1,\#\}\), change the current array from \(\ldots0\{0,\ldots,0,A+1,\#\}b+1\ldots\) to \([\ldots0\{0,\ldots,\ldots0\{0,\ldots,0,0,\#\}b+1\ldots,A,\#\}1\{0,\ldots,0,A+1,\#\}b\ldots]\) #If none of the above rules apply, start the process inside of the separator. Note that rule 1 also applies inside nested arrays. For example : \(2[0\{1\}1] = 2[0\{0\}0\{0\}1]\) With this notation, \(0\{0\}1\) has strength \(\varphi(\omega^\omega,0)\) but \(0\{0,1\}1\) has strength \(\varphi(\omega^{\omega2},0)\). The first expands to \(0\{a\}1\), whereas the other expands to \(0\{a\}1\). The limit of HDCAN is the fixed point of \(a \mapsto 0\{a\}1\), which has the strength of the Bachmann-Howard Ordinal, \(\psi(\varepsilon_{\Omega+1})\). Stage 6 : Supradimensional (SDCAN) : Now let's introduce a new kind of separator, the pipe \(|\). You could call the pipe an expanding separator. First, in rule 3.1 of the process, change every \(\{A+1,\#\}\) to \(\{A+1;\#\}\) where the semicolon is a placeholder for any separator. Then, add the following rule after rule 3.2 : 3) If the separator contains a pipe : #If the separator is of the form \(\{0;0\ldots;0|B+1\ldots\}\), then replace it with \(\{0;0\ldots;\{0;0\ldots;0|0\ldots\}|B\ldots\}\) #Otherwise, start the process inside of the separator, with a couple rules changed ; ##Replace every instance of [] brackets with {} ones. ##When you encounter \(\{0\}\), replace \(0\{\cdots\{0\}\cdots\}b\) with \(\{\cdots N_a\cdots\}\), where a is the base and \(\begin{equation*}N_k =\begin{cases}`0` & k = 0 \\ `0\{\cdots N_{k-1}\cdots\}b` & k > 0 \end{cases} \end{equation*}\) #In any case, replace \(0\{\#_0\}b+1\) with \(0\{\#_1\}1\{\#_0\}b\), where \(\#_0\) and \(\#_1\) represent the separator before and after applying the process. With these rules, the limit of HDCAN can be simply expressed as \(0\{0|1\}1\). Let's see how a few other separators expands : we assume the base is 2 and skip the main rule 3 and the rule 2.2 of the process. \(\begin{align*} 2\}1 &= 0\}|1\}1 \\ &= 1\}1 \\ &= 1\}1|1\}1|1\}1 \\ &= 0\}1|1\}1|1\}1 \\ &= 1\}1|1\}1 \\ &= [0\{0\{0\{0\{1\}1|1\}1\}1\}1|1\}1|1\}1] \\ &= [0\{0\{0\{0\{[0\{0\{0\{1\}1|1\}1\}1|1\}1|1\}1]\}1\}1|1\}1|1\}1] \\ &= [0\{0\{0\{0\{[0\{0\{0\{[0\{0\{1\}1|1\}1|1\}1|1\}1]\}1|1\}1|1\}1]\}1\}1|1\}1|1\}1] \\ &= \ldots \end{align*}\) \(\begin{align*} 1\}2 &= 1\}1 \\ &= 1\}1 \\ &= [0\{0\{1\}1\}1\}1\{0|1\}1] \\ &= [0\{0\{[0\{1\}1\}1\{0|1\}1]\}1\}1\{0|1\}1] \\ &= [0\{0\{[0\{[1\}1,0\{0|1\}1]\}1\{0|1\}1]\}1\}1\{0|1\}1] \\ &= [0\{0\{[0\{[0,0\{N_2\}1,0\{0|1\}1]\}1\{0|1\}1]\}1\}1\{0|1\}1] \\ &= [0\{0\{[0\{[0,0\{0\{0,1\}1\}1,0\{0|1\}1]\}1\{0|1\}1]\}1\}1\{0|1\}1] \\ &= \ldots \end{align*}\) \(\begin{align*} 0|1\}1 &= N_2\}1 \\ &= 0\{0|0,1\}1\}1 \\ &= 0\{0|[0\{0|0,1\}1\}1\}1] \\ &= 0\{0|[0\{0|[0,1\}1]\}1\}1] \\ &= 0\{0|[0\{0|[2\}1]\}1\}1] \\ &= 0\{0|[0\{N_2|[1\}1]\}1\}1] \\ &= 0\{0|[0\{0\{0\{0|[1\}1|1\}1|1\}1]\}1\}1] \\ &= 0\{0|[0\{0\{0\{N_2|[0\}1|1\}1|1\}1]\}1\}1] \\ &= 0\{0|[0\{0\{0\{0\{0\{0|[0\}1|0\}1|0\}1|1\}1|1\}1]\}1\}1] \\ &= 0\{0|[0\{0\{0\{0\{0\{0|2\}1|[0\}1|0\}1|1\}1|1\}1]\}1\}1] \\ &= \ldots \end{align*}\) The limit of this is \(\{0|0|\ldots|0|1\}\), but no worries. We let \(|\{0\} = |\) and then \(|\{1\}\) is the dimensional separator after \(|\). So the above limit is just \(\{0|\{1\}1\}\). Since we are above hyperdimensional level, arrays are allowed inside separators, which gets us all the way to the fixed point of \(a \mapsto \{0|a1\}\). And this is the double pipe \(\|\). Now we have to change the rule 3.3.2.2 of the process to the following : 2) When you encounter \(\{0\}\), replace \(0\{\cdots\{0\}\cdots\}b\) with \(\{\cdots N_{p,a}\cdots]\), where a is the base, p is the number of pipes to the right of the \(\{0\}\) and \(\begin{equation*}N_{p,k} =\begin{cases}`0` & k = 0 \\ `0|^{p-1}\{\cdots N_{p,k-1}\cdots\}b` & k > 0 \end{cases} \end{equation*}\), hwere \(|^n = \underbrace{ ||\cdots|}_n\). The double pipe is the limit of "pipe-dimensional" arrays, the triple pipe is the limit of "double pipe-dimensional" arrays, etc. The limit of this is finitely many pipes, which has strength \(\psi(\Omega_\omega)\). Stage 7 : Meta-dimensional (MDCAN) : Let's change rule 3.3 of the process : 3) If the separator contains any separator \(@\) such that \(@ \geq |\) : #If the separator is of the form \(\langle 0;0\ldots;0@B+1\ldots{}_@\rangle\), then replace it with \(\langle0;0\ldots;\langle0;0\ldots;0@0\ldots@\rangle@B\ldots{}_@\rangle\). #Otherwise, start the process inside of the separator, with a couple rules changed ; ##Replace every instance of \([]\) brackets with \(\langle{}_@\rangle\) ones. ##When you encounter \(\langle0@\rangle\}\), replace \(0\langle\cdots\langle0{}_@\rangle\cdots{}_@\rangle b\) with \(0\langle\cdots N_{@,a}\cdots{}_@\rangle b\), where a is the base, and \(\begin{equation*} N_{@,a} = \begin{cases} `0` & a = 0 \\ `0\underbrace{\S\cdots\S}_ab` & \text{if } a = 1 \text{ and } @ = \langle0{}_\S\rangle \\ `0R(@)\langle\cdots N_{@,a-1}\cdots{}_@\rangle b` & \text{otherwise} \end{cases} \end{equation*}\) where \(\S\) is the separator with its last element trimmed. ###If no \(\langle{}_@\rangle\) brackets can be found, replace \(0@b\) with \(0\{0\langle\cdots\langle0@b{}_@\rangle\cdots{}_|\rangle a\}a\), where a is the base. ###If this step doesn't apply to the separator, then start the process inside of it, with the same rules. #In any case, replace \(0\langle\#_0@\rangle b+1\) with \(0\langle\#_1@\rangle1\#_0@\rangle b\), where \(\#_0\) and \(\#_1\) represent the separator before and after applying the process. Now we need to define what \(R(@)\) and comparing separators mean. \(\begin{equation*} R(@) = \begin{cases} `` & \text{if } @ = `|_x` \text{ or } @ = `\langle0{}_\S\rangle` \\ `\S\langle n \rangle_y` & \text{if } @ = `\S\langle n+1{}_\S\rangle` \\ `\S` & \text{if } @ = `\S|_x` \end{cases} \end{equation*}\) \(|_1 = |\) The first meta-dimensional separator is \(\langle0|\rangle\). This expands to \(|\cdots|\). Thus, it has strength \(\psi(\Omega_\omega)\). The next one is \(\langle1|\rangle\). It is the fixed point of \(a \mapsto \{0\langle0|\rangle a1\}\). Of course, we can nest separators as we wish. \(\{0\langle0|1{}_|\rangle1\} = a \mapsto \{0\langle a{}_|\rangle1\}\) \(\langle0\langle0{}_|\rangle1{}_|\rangle = \langle0||\cdots||1|\rangle\) The limit of this is \(_n1\). Stage 8 : Expanding (ECAN) : We now have n-pipes, so we need to find a way to diagonalize over them ! For that reason, I introduce the slash. We just need to insert one simple rule between rule 3.2 and 3.3 : 3) If the separator contains a slash, replace it with \(|_a\), where a is the base. Then we can chain any separator defined before to the slash, since it's stronger than anything we've defined yet. We can then have the double slash, which nests n-order brackets, up until the slash array \(\langle0{}_/\rangle\). Note : \(/\langle0{}_|\rangle\) is much weaker than that. We can continue this until the fixed point of backslash arrays, and that is the 2-slash, \(/_2\). You guessed it, the limit of ECAN is \(0/_n1\). You can probably see a pattern here, and I will expand on that later on. WIP I plan on : *Comparing CAN to the FGH *Coining numbers *Introducing more expansions (possibly) Category:Blog posts